home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Taifun / Taifun 072 (1988-11-15)(Ossowski, Stefan)(DE)(PD).zip / Taifun 072 (1988-11-15)(Ossowski, Stefan)(DE)(PD).adf / Pcopy / fast.c < prev    next >
C/C++ Source or Header  |  1988-08-14  |  8KB  |  355 lines

  1. #include "pcopy.h"
  2.  
  3. /* A bunch of globals */
  4.  
  5. struct IntuitionBase *IntuitionBase;
  6. struct Window  *W0;        /* "Now in DF0:" window  */
  7. struct Window  *W1;        /* "Now in DF1:" window  */
  8. struct Window  *WH;        /* "Copy History" window  */
  9. struct Window  *WT;        /* "Track-staff" window  */
  10. struct Window  *WS;        /* "Status/Command" window */
  11. struct IOStdReq *IOHist;    /* History uses a Console device  */
  12. struct MsgPort  *MPHist;    /* Port used for Console device  */
  13. struct IOAudio Sound;        /* Yes, yes, a device for a change */
  14. ULONG *CopyBuffer;        /* ..  */
  15. ULONG *CompBuffer;        /* compare buffer  */
  16. DrInfo *D0, *D1;         /* two drive descriptors  */
  17. short EnAuto;            /* flag to prevent copy after copy after.. */
  18. short NowCopy=1;        /* flag, shows which gadgets are displayed */
  19. char *Hist;            /* pointer to one big (1k) char array  */
  20. char *DriveName[NDRIVES];    /* array with names of selected drives  */
  21. ULONG DriveNr[NDRIVES];        /* array with #'s of selected drives  */
  22.  
  23.  
  24. /*************************************************************************/
  25. /***                                                                   ***/
  26. /***  - SELECT DRIVES - Window & Gear definitions.                     ***/
  27. /***                                                                   ***/
  28. /*************************************************************************/
  29.  
  30.  
  31. /***  - SELECT DRIVES - Border around gadgets  ***/
  32.  
  33. SHORT  XYBox[]={
  34.   0,0,
  35.   0,GHEIGHT+1,
  36.   1,GHEIGHT+1,
  37.   1,0,
  38.   GWIDTH+3,0,
  39.   GWIDTH+3,GHEIGHT+1,
  40.   GWIDTH+2,0,
  41.   GWIDTH+2,GHEIGHT+1,
  42.   0,GHEIGHT+1
  43. };
  44. struct Border BDBox={ -2,-1,1,0,JAM1,9,XYBox,0 };
  45.  
  46.  
  47. /***  - SELECT DRIVES -  Gadget and text DF0:  ***/
  48.  
  49. struct IntuiText ITDF0={ 1,0,JAM1,7,2,0,"DF0:",0 };
  50. struct Gadget GDF0={
  51.   0,
  52.   0*(GWIDTH+GHSPACE)+GLDIST,GTDIST,GWIDTH,GHEIGHT,
  53.   GADGHCOMP,
  54.   TOGGLESELECT,
  55.   BOOLGADGET,
  56.   (APTR)&BDBox,
  57.   0,
  58.   &ITDF0,
  59.   0,0,0,0
  60. };
  61.  
  62. /***  - SELECT DRIVES -  Gadget and text DF1:  ***/
  63.  
  64. struct IntuiText ITDF1={ 1,0,JAM2,7,2,0,"DF1:",0 };
  65. struct Gadget GDF1={
  66.   &GDF0,
  67.   1*(GWIDTH+GHSPACE)+GLDIST,GTDIST,GWIDTH,GHEIGHT,
  68.   GADGHCOMP,
  69.   TOGGLESELECT,
  70.   BOOLGADGET,
  71.   (APTR)&BDBox,
  72.   0,
  73.   &ITDF1,
  74.   0,0,0,0
  75. };
  76.  
  77. /***  - SELECT DRIVES -  Gadget and text DF2:  ***/
  78.  
  79. struct IntuiText ITDF2={ 1,0,JAM2,7,2,0,"DF2:",0 };
  80. struct Gadget GDF2={
  81.   &GDF1,
  82.   2*(GWIDTH+GHSPACE)+GLDIST,GTDIST,GWIDTH,GHEIGHT,
  83.   GADGHCOMP,
  84.   TOGGLESELECT,
  85.   BOOLGADGET,
  86.   (APTR)&BDBox,
  87.   0,
  88.   &ITDF2,
  89.   0,0,0,0
  90. };
  91.  
  92. /***  - SELECT DRIVES -  Gadget and text DF3:  ***/
  93.  
  94. struct IntuiText ITDF3={ 1,0,JAM2,7,2,0,"DF3:",0 };
  95. struct Gadget GDF3={
  96.   &GDF2,
  97.   3*(GWIDTH+GHSPACE)+GLDIST,GTDIST,GWIDTH,GHEIGHT,
  98.   GADGHCOMP,
  99.   TOGGLESELECT,
  100.   BOOLGADGET,
  101.   (APTR)&BDBox,
  102.   0,
  103.   &ITDF3,
  104.   0,0,0,0
  105. };
  106.  
  107. /***  - SELECT DRIVES -  Gadget and text "DONE"  ***/
  108.  
  109. struct IntuiText ITDONE={ 1,0,JAM2,6,2,0,"DONE",0 };
  110. struct Gadget GDONE={
  111.   &GDF3,
  112.   4*(GWIDTH+GHSPACE)+GHSPACE+GLDIST,GTDIST,GWIDTH,GHEIGHT,
  113.   GADGHNONE,
  114.   TOGGLESELECT,
  115.   BOOLGADGET,
  116.   (APTR)&BDBox,
  117.   0,
  118.   &ITDONE,
  119.   0,0,0,0
  120. };
  121.  
  122.  
  123. /***  - SELECT DRIVES -  Window  ***/
  124.  
  125. struct NewWindow NwR={
  126. #define NWRWIDTH (5*GWIDTH+5*GHSPACE+2*GLDIST)
  127.   640/2-NWRWIDTH/2,64,
  128.   NWRWIDTH,GTDIST+GHEIGHT+5,
  129.   0,1,
  130.   0,
  131.   WINDOWDRAG | SMART_REFRESH | ACTIVATE | NOCAREREFRESH ,
  132.   &GDONE,
  133.   0,
  134.   "  Pcopy uses two drives. Which two?   ",
  135.   0,0,0,0,0,0,
  136.   WBENCHSCREEN
  137. };
  138.  
  139. /***  - SELECT DRIVES -  Gadgets indexed available  ***/
  140.  
  141. struct Gadget *GList[]={ &GDF0,&GDF1,&GDF2,&GDF3 };
  142.  
  143.  
  144. /*************************************************************************/
  145. /***                                                                   ***/
  146. /***  - COPY INTERFACE -  Windows & Gear definitions                   ***/
  147. /***                                                                   ***/
  148. /*************************************************************************/
  149.  
  150.  
  151. /***  - COPY INTERFACE -  Track mark Window and staff IM's   ***/
  152.  
  153. char           TxT[]="     .    :    .    |    .    :    .     ";
  154. struct IntuiText ITT={ 0,1,1,0,0,0,TxT,0 };
  155. struct Image IMTTTL={ 0,0,332, 1,0,0,0,1,0 };
  156. struct Image IMTmOn={ 6,0,  4,6,0,0,0,3,0 };
  157. struct Image IMTmOf={ 6,0,320,6,0,0,0,0,0 };
  158. struct NewWindow NwT={
  159.   LTM,TTM,
  160.   WTM,HTM,
  161.   0,1,
  162.   0,
  163.   WINDOWDRAG | WINDOWDEPTH | SMART_REFRESH,
  164.   0,
  165.   0,
  166.   TxT,
  167.   0,0,0,0,0,0,
  168.   WBENCHSCREEN
  169. };
  170.  
  171.  
  172. /***  - COPY INTERFACE -  "Now in" windows   ***/
  173.  
  174. char           Tx1[]="  Now in        ";
  175. struct IntuiText IT1={ 0,1,1,0,0,0,Tx1,0 };
  176. struct NewWindow Nw1={
  177.   LD1,TD1,
  178.   WD1,HD1,
  179.   0,1,
  180.   0,
  181.   WINDOWDRAG | WINDOWDEPTH | SMART_REFRESH,
  182.   0,
  183.   0,
  184.   Tx1,
  185.   0,0,0,0,0,0,
  186.   WBENCHSCREEN
  187. };
  188.  
  189. char           Tx0[]="  Now in        ";
  190. struct IntuiText IT0={ 0,1,1,0,0,0,Tx0,0 };
  191. struct NewWindow Nw0={
  192.   LD0,TD0,
  193.   WD0,HD0,
  194.   0,1,
  195.   0,
  196.   WINDOWDRAG | WINDOWDEPTH | SMART_REFRESH,
  197.   0,
  198.   0,
  199.   Tx0,
  200.   0,0,0,0,0,0,
  201.   WBENCHSCREEN
  202. };
  203.  
  204. /***  - COPY INTERFACE -  History Window    ***/
  205.  
  206. char           TxH[]="  Copy History  ";
  207. struct IntuiText ITH={ 0,1,1,0,0,0,TxH,0 };
  208. struct NewWindow NwH={
  209.   LHS,THS,
  210.   WHS,HHS,
  211.   0,1,
  212.   0,
  213.   WINDOWDRAG | WINDOWDEPTH | SMART_REFRESH | WINDOWSIZING,
  214.   0,
  215.   0,
  216.   TxH,
  217.   0,0,
  218.   WHS,21,
  219.   WHS,256,
  220.   WBENCHSCREEN
  221. };
  222.  
  223. /***/
  224. /***  - COPY INTERFACE -  Control Window and its Gadgets   ***/
  225. /***/
  226.  
  227. /***  - C.I. CONTROL -  Some general images and texts  ***/
  228.  
  229. struct Image  IMOFF={ 0,0,48,11,1, OFFData,1,0,0 };
  230. struct Image   IMON={ 0,0,48,11,1,  ONData,3,0,0 };
  231.  
  232. struct IntuiText ITCCon={ 1,0,JAM2,0,0,0,"Auto Start Condition:",0 };
  233. struct Image IMBlnk={ 0,0,176,38,0,0,0,0,0 };
  234.  
  235. struct Image IMEcla={ 0,0,32,24,2,EclaData,3,0,0 };
  236. struct Image IMEcOf={ 0,0, 32,24,0,0,0,0,0 };
  237.  
  238. /***  - C.I. CONTROL -  Source/Destination Gadget   ***/
  239.  
  240. struct IntuiText  ITDr1={ DESTCOLOR,0,JAM2, 56,2,0,0,     0 };
  241. struct IntuiText  ITDr0={         1,0,JAM2,-40,2,0,0,&ITDr1 };
  242. /* flags which is in color (.FrontPen) and which in black */
  243. UBYTE  PenA=1;
  244. UBYTE  PenB=3;
  245. struct Image  IMARR={ 0,0,48,11,1,ARRData,1,0,0 };
  246. struct Image  IMARL={ 0,0,48,11,1,ARLData,1,0,0 };
  247. APTR ArrowA=(APTR)&IMARR;
  248. APTR ArrowB=(APTR)&IMARL;
  249.  
  250. struct Gadget GD0D1={
  251.   0,
  252.   104,2*GGH,48,11,
  253.   GADGIMAGE | GADGHIMAGE,
  254.   TOGGLESELECT,
  255.   BOOLGADGET,
  256.   (APTR)&IMARR,
  257.   (APTR)&IMARL,
  258.   &ITDr0,
  259.   0,0,0,0
  260. };
  261.  
  262. /***  - C.I. CONTROL -  Manual start copy gadget  ***/
  263.  
  264. SHORT  XYCopy[]={ 0,0,0,23,1,23,1,0,46,0,46,23,0,23,47,23,47,0};
  265. struct Border BDCopy={ -2,-1,1,0,JAM1,9,XYCopy,0 };
  266. struct IntuiText ITCopy={ 1,0,JAM2,-88,6,0,"Start Copy",0 };
  267. struct Gadget GCopy={
  268.   &GD0D1,
  269.   104+2,4*GGH+7,44,22,
  270.   GADGHCOMP ,
  271.   TOGGLESELECT,
  272.   BOOLGADGET,
  273.   (APTR)&BDCopy,
  274.   0,
  275.   &ITCopy,
  276.   0,0,0,0
  277. };
  278.  
  279. /***  - C.I. CONTROL -  Auto/Manual start switch gadget  ***/
  280.  
  281. struct IntuiText ITAuto={ 1,0,JAM2,-88,2,0,"Auto Start",0 };
  282. struct Gadget GAuto={
  283.   &GCopy,
  284.   104,3*GGH,48,11,
  285.   GADGIMAGE | GADGHIMAGE,
  286.   TOGGLESELECT,
  287.   BOOLGADGET,
  288.   (APTR)&IMOFF,
  289.   (APTR)&IMON,
  290.   &ITAuto,
  291.   0,0,0,0
  292. };
  293.  
  294. /***  - C.I. CONTROL -  Verify switch gadget  ***/
  295.  
  296. struct IntuiText ITVerf={ 1,0,JAM2,-88,2,0,"    Verify",0 };
  297. struct Gadget GVerf={
  298.   &GAuto,
  299.   104,1*GGH,48,11,
  300.   GADGIMAGE | GADGHIMAGE | SELECTED ,
  301.   TOGGLESELECT,
  302.   BOOLGADGET,
  303.   (APTR)&IMOFF,
  304.   (APTR)&IMON,
  305.   &ITVerf,
  306.   0,0,0,0
  307. };
  308.  
  309. /***  - C.I. CONTROL -  "Non DOS" switch gadget  ***/
  310.  
  311. struct IntuiText ITNDOS={ 1,0,JAM2,-88,2,0,"   Non DOS",0 };
  312. struct Gadget GNDOS={
  313.   0,
  314.   104,5*GGH,48,11,
  315.   GADGIMAGE | GADGHIMAGE | SELECTED ,
  316.   TOGGLESELECT,
  317.   BOOLGADGET,
  318.   (APTR)&IMOFF,
  319.   (APTR)&IMON,
  320.   &ITNDOS,
  321.   0,0,0,0
  322. };
  323.  
  324. /***  - C.I. CONTROL -  "Unreadable" switch gadget  ***/
  325.  
  326. struct IntuiText ITUnRd={ 1,0,JAM2,-88,2,0,"Unreadable",0 };
  327. struct Gadget GUnRd={
  328.   0,
  329.   104,6*GGH,48,11,
  330.   GADGIMAGE | GADGHIMAGE | SELECTED ,
  331.   TOGGLESELECT,
  332.   BOOLGADGET,
  333.   (APTR)&IMOFF,
  334.   (APTR)&IMON,
  335.   &ITUnRd,
  336.   0,0,0,0
  337. };
  338.  
  339. /***  - C.I. CONTROL -  Control Window  ***/
  340.  
  341. struct NewWindow NwS={
  342.   LST,TST,
  343.   WST,HST,
  344.   0,1,
  345.   CLOSEWINDOW,
  346.   WINDOWDRAG | WINDOWDEPTH | SMART_REFRESH | WINDOWCLOSE | ACTIVATE,
  347.   &GVerf,
  348.   0,
  349.   " Pcopy 1.0 ",
  350.   0,0,
  351.   0,0,0,0,
  352.   WBENCHSCREEN
  353. };
  354.  
  355.